package com.fdangelo.circleworld.universeengine.tilemap; import com.badlogic.gdx.assets.AssetManager; import com.badlogic.gdx.graphics.g2d.TextureAtlas; import com.badlogic.gdx.graphics.g2d.TextureAtlas.AtlasRegion; import com.fdangelo.circleworld.GameLogic; public class TileTypes { static private TileType[] tileTypes; static public TileType[] getTileTypes() { if (tileTypes == null) { initTileTypes(); } return tileTypes; } static public TileType getTileType(final byte id) { return getTileTypes()[id]; } static private TextureAtlas atlas; static public void initTileTypes() { final AssetManager assetManager = GameLogic.getInstace().assetManager; atlas = assetManager.get("atlas/tilemap.atlas", TextureAtlas.class); tileTypes = new TileType[256]; for (int i = 0; i < tileTypes.length; i++) { tileTypes[i] = new TileType(); } tileTypes[1].center = getTileSubtypeUV("grassCenter"); tileTypes[1].top = getTileSubtypeUV("grassMid"); tileTypes[2].center = getTileSubtypeUV("sandCenter"); tileTypes[2].top = getTileSubtypeUV("sandMid"); tileTypes[3].center = getTileSubtypeUV("snowCenter"); tileTypes[3].top = getTileSubtypeUV("snowMid"); tileTypes[4].center = getTileSubtypeUV("stoneCenter"); tileTypes[4].top = getTileSubtypeUV("stoneMid"); tileTypes[5].center = getTileSubtypeUV("sun1Center"); tileTypes[5].top = getTileSubtypeUV("sun1Mid"); tileTypes[6].center = getTileSubtypeUV("sun2Center"); tileTypes[6].top = getTileSubtypeUV("sun2Mid"); } static private TileSubtype getTileSubtypeUV(final String id) { final TileSubtype subtype = new TileSubtype(); final AtlasRegion region = atlas.findRegion(id); subtype.uvFromX = region.getU(); subtype.uvToX = region.getU2(); subtype.uvFromY = region.getV(); subtype.uvToY = region.getV2(); return subtype; } }